Systems and methods for displaying representative images

ABSTRACT

A system, method, and computer program product for displaying representative images within a collection viewer is disclosed. The method comprises receiving an indication of a new orientation for the collection viewer, displaying a sequence of animation frames that depict an in-place rotation animation for the representative images, generating a rotation angle in a sequence of rotation angles, and displaying a rendered representative image for each of the two or more representative images by rendering the two or more representative images, wherein each rendered representative image is rotated according to the rotation angle.

CROSS-REFERENCES TO RELATED APPLICATIONS

The present application is a continuation of, and claims priority toU.S. patent application Ser. No. 14/340,557, titled “SYSTEMS AND METHODSFOR DISPLAYING REPRESENTATIVE IMAGES,” filed Jul. 24, 2014, which inturn claims priority to U.S. Provisional Application No. 61/958,324,titled “Systems and methods for digital photography,” filed Jul. 25,2013. The foregoing applications and/or patents are herein incorporatedby reference in their entirety for all purposes.

FIELD OF THE INVENTION

Embodiments of the present invention relate generally to user interfacedesign, and more specifically to systems and methods for displayingrepresentative images.

BACKGROUND

A typical mobile computing device, or simply “mobile device,” such as asmartphone or tablet computer, includes a computation subsystem, and adisplay screen configured to display a user interface (UI) comprisingelements such as control widgets and representative images of filesaccessible through the UI. A representative image may comprise athumbnail image associated with an application, script, or data fileresiding within a file system or file database. One example of arepresentative image is an image thumbnail. Another example of arepresentative image is a file icon. Representative images are typicallypresented to a user within a collection viewer that is configured toallow the user to browse, select, view, execute, and otherwise interactwith corresponding objects. One example of a collection viewer is a filebrowser, which may be configured to show users a list of files within afile system depicted as icons. Another example of a collection viewer isan image browser, configured to show users a list of images within afile system or image database depicted as thumbnails.

A UI for a mobile device typically includes a collection viewer forfiles and may include a collection viewer for images. A collectionviewer for digital images may similarly present thumbnails associatedwith digital images residing within an image database or within a filesystem folder of digital images. The collection viewer enables the userto browse thumbnails, and to open a digital image by performing a touchgesture on a corresponding thumbnail.

Mobile computing devices, or simply “mobile devices” may include anarbitrarily large number of files and corresponding icons that need tobe presented within a collection viewer for files. Similarly, mobiledevices may include an arbitrarily large number of digital images andcorresponding thumbnails that need to be presented within a collectionviewer for digital images. Typical collection viewers enable users toview a collection of representative images as a two-dimensional grid ofrepresentative images. The representative images are conventionallypositioned within the grid according to a specific sequence, such as afile sequence number, a sort sequence number, or an image sequencenumber. The grid is populated with representative images frequentlyforming a tall, narrow form factor regardless of device orientation.Width of the grid is associated with horizontal screen width, which maybe different in landscape versus portrait orientations. As aconsequence, the physical location of a specific representative imagemay change when device orientation changes because the collection viewertypically needs to alter the grid layout and specific sequence of therepresentative images.

In conventional operation of a collection viewer, the user may locate adesired representative image by scrolling the grid vertically into anappropriate screen position. However, if the user then rotates theirmobile device, the screen position of the desired representative imagetypically changes in response to the change in grid width, forcing theuser to once again locate their desired representative image within thegrid. Forcing the user to locate the desired representative image asecond time after rotation introduces inefficiency and confusion in theuser experience.

As the foregoing illustrates, there is a need for addressing this and/orother related issues associated with the prior art.

SUMMARY

A system, method, and computer program product for displayingrepresentative images within a collection viewer is disclosed. Themethod comprises receiving an indication of a new orientation for thecollection viewer, displaying a sequence of animation frames that depictan in-place rotation animation for the representative images, generatinga rotation angle in a sequence of rotation angles, and displaying arendered representative image for each of the two or more displayedrepresentative images, wherein each rendered representative image isrotated according to the rotation angle

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 illustrates a flow chart of a method for displaying a collectionof representative images, according to one embodiment of the presentinvention;

FIG. 2A illustrates a front view of a mobile device comprising a displayunit, according to one embodiment of the present invention;

FIG. 2B illustrates a block diagram of a mobile device comprising adisplay unit, according to one embodiment of the present invention;

FIG. 3A illustrates a collection viewer configured in a portraitorientation, according to one embodiment of the present invention;

FIG. 3B illustrates a collection viewer configured in a landscapeorientation, according to one embodiment of the present invention;

FIG. 3C illustrates one representative image in two differentorientations as viewed by a user with respect to a physical updirection, according to one embodiment of the present invention;

FIG. 3D illustrates one representative image in two differentorientations with respect to a physical display origin, according to oneembodiment of the present invention; and

FIG. 3E depicts an animation sequence of frames for one representativeimage transitioning between two different orientations, according to oneembodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention enable a mobile device to present aconsistent location of representative images regardless of deviceorientation within a user interface (UI). A collection viewer refers toa collection of software modules that generate a depiction of dataobjects within a UI. Displayed UI elements generated by the softwaremodules may also be referred to generally as a collection viewer. Acollection viewer is configured to present representative images of thedata objects, such as file icons and image thumbnails to a user. Acollection viewer may comprise a file browser, an image browser, or anyother type of data object browser configured to depict data objects asrepresentative images. When the user rotates the mobile device, thecollection viewer generates an in-place rotation animation for eachrepresentative image. Keeping each representative image in substantiallythe same physical screen location regardless of device orientationallows the user to visually track a given representative image throughdevice rotation, thereby providing a more efficient and intuitive userexperience. Animating rotation of the representative images to maintainproper viewing orientation provides an intuitive visual cue, furtherimproving the user experience.

FIG. 1A illustrates a flow chart of a method 100 for displaying acollection of representative images, according to one embodiment of thepresent invention. Although method 100 is described in conjunction withthe systems of FIGS. 2A-2B, persons of ordinary skill in the art willunderstand that any system that performs method 100 is within the scopeand spirit of embodiments of the present invention. In one embodiment, amobile device, such as mobile device 270 of FIGS. 2A-2B, is configuredto perform method 100. by executing a collection viewer, implemented asa software module within mobile device 270.

Method 100 begins in step 110, where the collection viewer receives anotification indicating that the mobile device has been repositionedinto a new orientation. In one embodiment, the notification indicatesone of four orthogonal orientations, where a first orientation isassociated with a generally upright portrait orientation, a secondorientation is associated a clockwise rotation from the firstorientation to a landscape orientation, a third orientation isassociated with an upside down portrait orientation, and a fourthorientation is associated a counterclockwise rotation from the firstorientation to a landscape orientation. Each of the four orientationsrepresents an approximation of a physical orientation of the mobiledevice to the nearest ninety degrees. In other embodiments, theapproximation of a physical orientation may comprise angular incrementsof less than ninety degrees to provide a finer approximationgranularity. In certain embodiments, angular increments aresubstantially uniform, while in other embodiments, angular incrementsare non-uniform.

In one embodiment, physical orientation is generated from measurementsperformed by a sensor device, such as one of sensor devices 242. Forexample, an accelerometer, comprising sensor devices 242, may provide aphysical measurement of a force vector corresponding to physical forceson the mobile device. When mobile device is held generally still, suchas when a user is holding the mobile device, this measured force vectoris generally aligned with a gravity force vector. When the measuredforce vector is aligned vertically and pointing from the top of themobile device to the bottom of the mobile device, the mobile device islikely being held in an upright portrait orientation. When the measuredforce vector is rotated by approximately ninety degrees about a normalvector to display unit 212, the device is likely being held in alandscape orientation, and so forth. While approximating orientation isdescribed herein based on a measured force vector, other techniques ofapproximating orientation may be performed without departing the scopeand spirit of embodiments of the present invention.

Any technically feasible technique may be implemented for sending anotification to the collection viewer. For example, the notification maycomprise a message in an object message passing system. In this example,an instance of the collection viewer is configured to receive a neworientation message when the mobile device changes to a new orientation.A software module, such as a system service module, is configured toapproximate device orientation, for example, by monitoring anaccelerometer within sensor devices 242. The new orientation message mayspecify a new orientation, or the new orientation message may specifythat the device is in a new orientation and trigger the collectionviewer to determine the new orientation. The new orientation message mayindicate that the device has changed orientation beyond a specifiedangular threshold, enabling the collection viewer to determine anorientation for display, such as in embodiments that implement finerrotational granularity than ninety degree granularity. The systemservice module may include a kernel process configured to monitorhardware circuits comprising the sensor devices 242, an applicationprogramming interface (API) configured to respond to the kernel process,a process executing in application space that is configured to monitorsensor devices 242 and generate messages based on specified criteria, orany other technically feasible mechanism for providing orientationnotifications to the collection viewer.

In one embodiment, hysteresis is applied to an orientationapproximation, so that a change in physical orientation needs to surpassa certain rotational threshold to trigger generation of the notificationof a new orientation. In such an embodiment, the system services moduleapplies hysteresis to physical orientation measurements so that anotification is generated only after a specified orientation thresholdis exceeded. In other embodiments, the collection viewer is configuredto apply hysteresis to notifications, such as notifications for changesof less than ninety degrees or less than an orientation changethreshold.

In step 120, the collection viewer, or a helper function to thecollection viewer, computes a current animation state for a currentanimation sequence. A current animation sequence may include a scrollanimation, a rotation animation, or a combination thereof triggered by aphysical change in device orientation. A given current animationsequence is initiated in response to receiving the notification. In oneembodiment, the current animation sequence defines a sequence of frames,as discussed in greater detail below in FIG. 3E. In one embodiment, agiven animation sequence completed before a subsequent animationsequence is initiated. The current animation state may define a currentscroll position and a current rotation angle for a collection ofrepresentative images being animated in the current animation sequence.The current animation state may determine which representative imagesare visible within view panel 311.

In step 130, the collection viewer, or a helper function to thecollection viewer, identifies representative images to render in acurrent animation frame. Any technically feasible technique may be usedto identify representative images to render. In one embodiment, onlyvisible representative images are identified to render in the currentframe. In one embodiment, a visible representative image includesgeometry that intersects at least one pixel within view panel 311. Inanother embodiment, visible representative images and at least onenon-visible representative image are identified to render in a currentanimation frame. In one embodiment, when a representative image is newlyvisible in a current animation frame, that representative image isinstantiated for display and the instantiated representative imageinstance is sent a message to render an associated representative imageaccording to the current animation state. Other representative imageinstances may be sent a substantially similar message to render anassociated representative image according to the current animationstate. In certain embodiments, a representative image instance that isno longer visible is de-allocated at the completion of the animationsequence.

In step 140, the collection viewer, or a helper function to thecollection viewer, generates an animation frame comprising renderedrepresentative images. In one embodiment, the animation frame includesone rendered representative image. In another embodiment, the animationframe includes two or more rendered representative images. Each renderedrepresentative image includes a representative image that has beentranslated, rotated, or both translated and rotated in accordance withthe current animation state. At least a portion of each renderedrepresentative image may be presented within view panel 311. In oneembodiment, the generated animation frame is displayed on display unit212 of FIG. 2A. In one embodiment, each animation frame is rendered by agraphics processing unit (GPU) within processor complex 210 of FIG. 2B.

If, in step 150, the current animation frame is the last animationframe, then the method terminates. Otherwise, the method proceeds backto step 120.

System Overview

FIG. 2A illustrates a front view of a mobile device 270 comprising adisplay unit 212, according to one embodiment of the present invention.Display unit 212 is configured to display user interface (UI) elementsassociated with software applications configured to execute on mobiledevice 270. The UI elements may include representative images, such asfile icons and image thumbnails.

FIG. 2B illustrates a block diagram of mobile device 270, according toone embodiment of the present invention. Mobile device 270 includes aprocessor complex 210 coupled to display unit 212. Mobile device 270 mayalso include, without limitation, a digital camera 230, a strobe unit236, a set of input/output devices 214, non-volatile memory 216,volatile memory 218, a wireless unit 240, and sensor devices 242, eachcoupled to processor complex 210. In one embodiment, a power managementsubsystem 220 is configured to generate appropriate power supplyvoltages for each electrical load element within mobile device 270, anda battery 222 is configured to supply electrical energy to powermanagement subsystem 220. Battery 222 may implement any technicallyfeasible battery, including primary or rechargeable batterytechnologies. Alternatively, battery 222 may be implemented as a fuelcell, or high capacity electrical capacitor.

In one usage scenario, strobe illumination 237 comprises at least aportion of overall illumination in a scene being photographed by digitalcamera 230. Optical scene information 239, which may include strobeillumination 237 reflected from objects in the scene, is focused onto animage sensor 232 as an optical image. Image sensor 232, within digitalcamera 230, generates an electronic representation of the optical image.The electronic representation comprises spatial color intensityinformation, which may include different color intensity samples forred, green, and blue light.

Display unit 212 is configured to display a two-dimensional array ofpixels to form a digital image for display. Display unit 212 maycomprise a liquid-crystal display, an organic LED display, or any othertechnically feasible type of display. Input/output devices 214 mayinclude, without limitation, a capacitive touch input surface, aresistive tablet input surface, buttons, knobs, or any other technicallyfeasible device for receiving user input and converting the input toelectrical signals. In one embodiment, display unit 212 and a capacitivetouch input surface comprise a touch entry display system, andinput/output devices 214 comprise a speaker and microphone.

Non-volatile (NV) memory 216 is configured to store data when power isinterrupted. The NV memory 216 therefore implements a non-transitorycomputer-readable medium. In one embodiment, NV memory 216 comprises oneor more flash memory devices. NV memory 216 may be configured to includeprogramming instructions for execution by one or more processing unitswithin processor complex 210. The programming instructions may include,without limitation, an operating system (OS), user interface (UI)modules, imaging processing and storage modules, and modulesimplementing one or more embodiments of techniques taught herein. Inparticular, the NV memory 216 may be configured to store instructionsthat implement method 100 of FIG. 1. The instructions, when executed byprocessing units within processor complex 210, cause the processingunits to perform method 100. One or more memory devices comprising NVmemory 216 may be packaged as a module that can be installed or removedby a user. In one embodiment, volatile memory 218 comprises dynamicrandom access memory (DRAM) configured to temporarily store programminginstructions, image data, and the like needed during the course ofnormal operation of mobile device 270. Sensor devices 242 includesensors configured to detect at least device orientation of the mobiledevice 270. For example sensor devices 242 may include an accelerometerto detect motion and orientation, an electronic gyroscope to detectmotion and orientation, or a combination thereof. Sensor devices 242 mayalso include, without limitation, a magnetic flux detector to detectorientation, a global positioning system (GPS) module to detectgeographic position, or any combination thereof.

Wireless unit 240 may include one or more digital radios configured tosend and receive digital data. In particular, wireless unit 240 mayimplement wireless standards known in the art as “WiFi” based oninstitute for electrical and electronics engineers (IEEE) standard802.11, and may implement digital cellular telephony standards for datacommunication such as the well-known “3G” and long term evolution(“LTE”), or “4G” suites of standards. In one embodiment, mobile device270 is configured to transmit one or more digital photographs residingwithin either NV memory 216 or volatile memory 218 to an onlinephotographic media service via wireless unit 240. In such an embodiment,a user may possess credentials to access the online photographic mediaservice and to transmit the one or more digital photographs for storageand presentation by the online photographic media service. Thecredentials may be stored or generated within mobile device 270 prior totransmission of the digital photographs. The online photographic mediaservice may comprise a social networking service, photograph sharingservice, or any other web-based service that provides storage anddownload of digital photographs. In certain embodiments, mobile device270 is configured to receive one or more incoming digital photographsvia wireless unit 240, and store the incoming digital photographs in theNV memory 216, or the volatile memory 218, or a combination thereof.

Collection Viewer

FIG. 3A illustrates a collection viewer 310 configured in a portraitorientation, according to one embodiment of the present invention. Asshown, a physical display origin 312 is disposed in an upper leftcorner, and a scroll axis 314 is aligned vertically. That is, the scrollaxis 314 is generally aligned with respect to a physical “up” direction316.

In one embodiment, collection viewer 310 allows a user to scroll acollection of representative images 320, along scroll axis 314 inresponse to an input scroll command. The collection of representativeimages 320 may be organized in a grid, with a portion of therepresentative images 320 visible within a view panel 311. A swipegesture performed on a capacitive input device within display unit 212may serve as the input scroll command. In one embodiment, view panel 311is configured to have a rectangular form, including a larger dimensionand a smaller dimension. In such an embodiment, the term “portraitorientation” refers to an orientation for view panel 311 with the largerdimension generally oriented along the up direction 316. The term“landscape orientation” refers to an orientation for view panel 311 withthe smaller dimension generally oriented along the up direction 316. Inother embodiments, view panel 311 may be square. In such embodiments,“portrait orientation” and “landscape orientation” comprise arbitrarybut orthogonal orientations of view panel 311.

While collection viewer 310 is illustrated here as a UI element having aview panel 311, the term “collection viewer” is defined broadly hereinto include a software module configured to generate the UI element anddisplay representative images 320 within view panel 311.

When a user rotates mobile device 270 into a new position, thecollection viewer may reconfigure presentation of representative images320 by causing the representative images 320 to rotate to an angleconsistent with the new position. For example, the user may initiallyhold mobile device 270 in a portrait orientation. The user may thenrotate the device orientation into a landscape orientation. In thisexample, mobile device 270 may detect a sufficient change in orientationand cause collection viewer 310 to transition from a portraitorientation to a landscape orientation, illustrated below in FIG. 3B. Inother embodiments, different orientations may be implemented accordingto arbitrary angles having finer granularity than orthogonal angles.Detecting a sufficient change may include a hysteresis function indevice orientation.

FIG. 3B illustrates collection viewer 310 configured in a landscapeorientation, according to one embodiment of the present invention. Asshown, the physical display origin 312 is disposed in a lower leftcorner, and a scroll axis 314 is aligned horizontally.

In a typical usage scenario, a user holds their head in an uprightposition, and therefore prefers to view representative images 320rendered according to the physical up direction 316. As shown,representative images 320 are rotated to be viewed in an orientationconsistent with the up direction 316. In one embodiment, representativeimages 320 are rotated in place. In one embodiment, rotation in placecomprises performing an animation, such as a rotation animation, fadeanimation, or other transition animation, for each representative image320. In one embodiment, animation for all representative images 320 isperformed substantially synchronously, so that all displayedrepresentative image 320 appear to move together. By rotatingrepresentative images 320 in place, collection viewer 310 is able topresent a physical metaphor of the representative images 320 that isconsistent with a physical device rotation. By contrast, prior artsystems typically rearrange thumbnails, leading to user confusion andbreaking any perceived consistency with physical device rotation.

FIG. 3C illustrates representative image 320(0,0) of FIG. 3A in twodifferent orientations as viewed by a user, according to one embodimentof the present invention. A portrait to landscape transform 330 isimplemented to animate a clockwise rotation of representative image320(0,0) from a portrait orientation to a landscape orientation.Additional transforms may be similarly implemented to animatetransitions between each different discrete rotation position. Here,representative image 320(0,0) is rotated ninety degrees in a clockwisedirection to compensate for a ninety degree counter-clockwise rotationof physical display origin 312. As shown, representative image 320(0,0)is rotated to be viewable in a generally upright orientation regardlessof orientation of physical display origin 312. In other embodiments,finger-grain discrete rotation positions may be similarly implemented.

FIG. 3D illustrates representative image 320(0,0) in two differentorientations with respect to the physical display origin 312 of FIG. 3A,according to one embodiment of the present invention. As describedabove, portrait to landscape transform 330 implements a rotation ofrepresentative image 320(0,0). As shown, representative image 320(0,0)is rotated relative to physical display origin 312.

FIG. 3E depicts an animation sequence 340 of frames 360 for onerepresentative image transitioning between two different orientations,according to one embodiment of the present invention. As shown, arepresentative image 342 is rotated in sequential frames 360(N) to360(N+4) to generate a rotation animation of representative image 342.The rotation animation depicts a rotational movement of therepresentative image 342 from an initial position at time T0, to a newposition at time T4. In this example, a user rotates mobile device 270counter-clockwise from a portrait orientation to a landscape orientationbetween time T0 and time T1, thereby triggering a clockwise animation ofrepresentative image 342. In the process, a new physical up direction isestablished. A new up direction 352 consequently replaces an old updirection 350. The animation sequence depicts rotational movement ofrepresentative image 342 to generally negate the physical rotation ofmobile device 270. In one embodiment the animation sequence is timedindependently of physical rotation once a rotation event is detected. Inother embodiments, the animation sequence is timed to substantiallytrack physical rotation once a rotation event is detected.

Representative image 342 may be rendered in each rotational positionassociated with each incremental frame 360. Although three intermediateframes 360(N+1), 360(N+2), and 360(N+3) are shown, animation sequence340 may implement an arbitrary number of intermediate frames. In oneembodiment, animation sequence 340 is initiated and completed during atime span of less than one second, but more than ten milliseconds. Incertain implementations, duration of animation sequence 340 may bemeasured as an integral multiple of a number of frame times needed todisplay intermediate frames as refresh frames on display device 212. Inone embodiment, each representative image being displayed within viewpanel 311 is animated substantially synchronously, so that eachanimation step for each representative image is completed together. Forexample, animation frame 360(N+1) is rendered and displayed at or beforetime T2 for each representative image 320 of FIG. 3A. In otherembodiments, looser synchronization may be implemented, so that eachrepresentative image 220 completes a respective animation sequencewithin a specified maximum number frame times, such as less than fiveframe times, or less than sixty frame times. In certain embodiments, ananimation sequence models certain physical behaviors or properties, suchas momentum, oscillation, friction, and the like. For example, ananimation sequence may depict the representative images overshootingtheir rotation and springing back into proper position. An arbitraryrotation function may be applied with respect to time to provide sucheffects.

In alternative embodiments, transition effects other than a rotationanimation may be implemented. For example, one alternative transitioneffect to a rotation animation is an alpha fade animation betweenrepresentative image 342 depicted in frame 360(0) and representativeimage 342 depicted in frame 360(N+4). Another alternative transitioneffect animates representative image 342 depicted in frame 360(0)collapsing to a dot and re-emerging as representative image 342 depictedin frame 360(N+4). These and other in-place transition effects may beimplemented without departing the scope and spirit of the presentinvention.

In one embodiment, frames 360 are rendered by a graphics processing unit(GPU) within processor complex 210 of FIG. 2B.

While the techniques disclosed herein are described in conjunction witha mobile device, persons skilled in the art will recognize that anycompute platform may be configured to perform these techniques.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

We claim:
 1. A method, comprising: displaying, on a display unit of amobile computing device, two or more representative images within acollection viewer, wherein each one of the two or more representativeimages is displayed at a respective location relative to a physicalorigin for the display unit; receiving an indication of a neworientation for the collection viewer; and in response to theindication, displaying a sequence of animation frames that depict anin-place rotation animation for each of the two or more representativeimages, wherein each in-place rotation animation is displayed at therespective location relative to the physical origin for the displayunit, and wherein each animation frame in the sequence of animationframes depicts a different rotation angle in a sequence of rotationangles for the two or more representative images by: generating thedifferent rotation angle for each animation frame in the sequence ofanimation frames; and displaying a rendered representative image foreach of the two or more representative images at the respective locationrelative to the physical origin for the display unit, wherein eachrendered representative image is rotated according to the differentrotation angle, wherein a first timing is associated with the in-placerotation animation and a second timing is associated with a physicalrotation timing, and the first timing commences after the second timingcommences; wherein a hysteresis is applied such that when a change of aphysical rotation surpasses a rotational threshold, a notification ofthe new orientation is received; wherein, in response to thenotification, each in-place rotation animation is timed independently ofthe physical rotation and each in-place rotation animation fullycompletes before a subsequent in-place rotation animation begins.
 2. Themethod of claim 1, wherein the indication comprises a message in anobject-based message passing system.
 3. The method of claim 1, whereinthe indication is generated in response to a measurement of a physicalforce associated with a mobile computing device.
 4. The method of claim1, wherein displaying the two or more representative images comprisesidentifying representative images that are visible within the collectionviewer.
 5. The method of claim 1, wherein the respective location foreach of the two or more representative images is determined in one ormore animation frames of the sequence of animation frames according to acurrent scroll position.
 6. The method of claim 1, wherein displayingthe sequence of rotation angles is performed by a graphics processingunit within a mobile computing device.
 7. A computer program productembodied in a non-transitory computer-readable medium that, whenexecuted by a processor, causes the processor to perform a methodcomprising: displaying, on a display unit of a mobile computing device,two or more representative images within a collection viewer, whereineach one of the two or more representative images is displayed at arespective location relative to a physical origin for the display unit;receiving an indication of a new orientation for the collection viewer;and in response to the indication, displaying a sequence of animationframes that depict an in-place rotation animation for each of the two ormore representative images, wherein each in-place rotation animation isdisplayed at the respective location relative to the physical origin forthe display unit, and wherein each animation frame in the sequence ofanimation frames depicts a different rotation angle in a sequence ofrotation angles for the two or more representative images by: generatingthe different rotation angle for each animation frame in the sequence ofanimation frames; and displaying a rendered representative image foreach of the two or more representative images at the respective locationrelative to the physical origin for the display unit, wherein eachrendered representative image is rotated according to the differentrotation angle; wherein a first timing is associated with the in-placerotation animation and a second timing is associated with a physicalrotation timing, and the first timing commences after the second timingcommences; wherein a hysteresis is applied such that when a change of aphysical rotation surpasses a rotational threshold, a notification ofthe new orientation is received; wherein, in response to thenotification, each in-place rotation animation is timed independently ofthe physical rotation and each in-place rotation animation fullycompletes before a subsequent in-place rotation animation begins.
 8. Thecomputer program product of claim 7, wherein the indication comprises amessage in an object-based message passing system.
 9. The computerprogram product of claim 7, wherein the indication is generated inresponse to a measurement of a physical force associated with a mobilecomputing device.
 10. The computer program product of claim 7, whereindisplaying the two or more representative images comprises identifyingrepresentative images that are visible within the collection viewer. 11.The computer program product of claim 7, wherein the respective locationfor each of the two or more representative images is determined in oneor more animation frames of the sequence of animation frames accordingto a current scroll position.
 12. The computer program product of claim7, wherein displaying the sequence of rotation angles is performed by agraphics processing unit within a mobile computing device.
 13. A mobilecomputing device comprising: a display unit configured to display acollection viewer; and a processing unit in communication with thedisplay unit and configured to: display two or more representativeimages within the collection viewer, wherein each one of the two or morerepresentative images is displayed at a respective location relative toa physical origin for the display unit; receive an indication of a neworientation for the collection viewer; and in response to theindication, display a sequence of animation frames that depict anin-place rotation animation for each of the two or more representativeimages, wherein each in-place rotation animation is displayed at therespective location relative to the physical origin for the displayunit, and wherein each animation frame in the sequence of animationframes depicts a different rotation angle in a sequence of rotationangles for the two or more representative images by: generating thedifferent rotation angle for each animation frame in the sequence ofanimation frames; and displaying a rendered representative image foreach of the two or more representative images at the respective locationrelative to the physical origin for the display unit, wherein eachrendered representative image is rotated according to the differentrotation angle; wherein a first timing is associated with the in-placerotation animation and a second timing is associated with a physicalrotation timing, and the first timing commences after the second timingcommences; wherein a hysteresis is applied such that when a change of aphysical rotation surpasses a rotational threshold, a notification ofthe new orientation is received; wherein, in response to thenotification, each in-place rotation animation is timed independently ofthe physical rotation and each in-place rotation animation fullycompletes before a subsequent in-place rotation animation begins. 14.The method of claim 1, wherein the first timing associated with eachin-place rotation animation is based, at least in part, on tracking aphysical rotation associated with the new orientation for the collectionviewer.
 15. The method of claim 1, wherein each in-place rotationanimation starts with a first frame of the sequence of animation framesand ends with a last frame of the sequence of animation frames, whereinthe last frame corresponds to the new orientation for the collectionviewer.
 16. The method of claim 1, wherein the in-place rotationanimation for each of the two or more representative images completesthe respective rotation angle in the sequence of rotation angles withina specified maximum number of frame times.
 17. The method of claim 1,wherein the in-place rotation animation for each of the two or morerepresentative images occurs synchronously with respect to the in-placerotation animations of other representative images of the two or morerepresentative images.
 18. The method of claim 1, wherein a placement ofthe rendered representative image for each of the two or morerepresentative images is consistent with a placement of the two or morerepresentative images.
 19. The method of claim 1, wherein the neworientation is based on rotating the display unit from at least one of alandscape orientation to a portrait orientation, the portraitorientation to the landscape orientation, or a combination of thelandscape orientation to the portrait orientation and the portraitorientation to the landscape orientation.
 20. The method of claim 1,wherein a third timing of the sequence of animation frames is based on atiming of a physical rotation.